package main

import (
	// 添加对 models 包的导入

	"lingc/routes"
	"lingc/services"
	"lingc/utils"
	"log"
)

func main() {
	// password := "123456"
	// hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
	// if err != nil {
	// 	log.Fatalf("密码哈希生成失败: %v", err)
	// }
	// log.Fatalf("数据库初始化失败%s", hashedPassword)
	// 初始化数据库连接
	db := utils.InitDB()
	if db == nil {
		log.Fatalf("数据库初始化失败")
	}
	defer func() {
		// 确保在程序退出时关闭数据库连接
		sqlDB, err := db.DB() // 获取底层的 *sql.DB
		if err != nil {
			log.Fatalf("获取底层数据库实例失败: %v", err)
		}
		if err := sqlDB.Close(); err != nil {
			log.Fatalf("关闭数据库连接失败: %v", err)
		}
	}()
	utils.MysqlClient = db
	// 初始化Redis连接
	utils.InitRedis()
	defer func() {
		// 确保在程序退出时关闭Redis连接
		if err := utils.RedisClient.Close(); err != nil {
			log.Fatalf("关闭Redis连接失败: %v", err)
		}
	}()
	// 初始化语言
	services.LangInit()
	// temp_zh := services.Translate("更新数据", "en")
	// temp_zh := services.UpGoogletrans("删除", "en")
	// log.Fatalf("初始化语言%s", temp_zh)
	// 初始化路由
	r := routes.SetupRouter()
	// 启动服务器
	if err := r.Run(":8880"); err != nil {
		log.Fatalf("启动服务器失败: %v", err)
	}

}
